package com.liqi.display.mapper;

import com.liqi.display.entity.returnType.TopEightTask;
import com.liqi.display.entity.returnType.WaitAndGetTimeForArea;
import com.liqi.display.entity.returnType.WaitAndGetTotal;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

@Mapper
public interface QueueMapper {

    //当天取号总数
    Integer getNumDayTotal(@Param("start") String start,@Param("end")String end);
    //当天现场取号数
    Integer getXCNumDayTotal(@Param("start") String start,@Param("end")String end);
    //当天微信取号数
    Integer getWXNumDayTotal(@Param("start") String start,@Param("end")String end);
    //当天预约取号数
    Integer getYYNumDayTotal(@Param("start") String start,@Param("end")String end);
    //当天预约数
    Integer getOrderDayTotal(@Param("start") String start,@Param("end")String end);
    //当天收件总数
    Integer getTotalDeal1(@Param("start") String start,@Param("end")String end);
    //当天发证总数
    Integer getTotalSend(@Param("start") String start,@Param("end")String end);
    //近一天收件总数
    Integer getTotalDealNearDay(@Param("start") String start,@Param("end")String end);
    //近30天取号总数
    Integer getNumMouthTotal(@Param("start") String start,@Param("end")String end);
    //已经办结
    Integer getTotalComplete(@Param("start") String start,@Param("end")String end);
    //正在办理
    Integer getTotalDoing(@Param("start") String start,@Param("end")String end);
    //当前等待
    Integer getTotalWaiting(@Param("start") String start,@Param("end")String end);
    //各业务区排队量、取号量
    List<WaitAndGetTotal> getTotalWaitingAndGetting(@Param("start") String start,@Param("end")String end);

    //近30天现场取号数
    Integer getXCNumMouthTotal(@Param("start") String start,@Param("end")String end);
    //近30天微信取号数
    Integer getWXNumMouthTotal(@Param("start") String start,@Param("end")String end);
    //近30天预约取号数
    Integer getYYNumMouthTotal(@Param("start") String start,@Param("end")String end);
    //近30天预约数
    Integer getOrderMouthTotal(@Param("start") String start,@Param("end")String end);
    //近30天收件总数
    Integer getMouthTotalDeal(@Param("start") String start,@Param("end")String end);
    //近30天发证总数
    Integer getMouthTotalSend(@Param("start") String start,@Param("end")String end);
    //近30天发证总数 来自 领证业务
    Integer getMouthTotalSendByComName(@Param("start") String start,@Param("end")String end);

    //3、最近七天取票方式趋势图
    //统计近七天的预约取号数
    Integer getLateOrder(@Param("start") Date start, @Param("end")Date end);
    //统计近七天的现场取号数
    Integer getLateCurrent(@Param("start")Date start,@Param("end")Date end);

    //5、各时段取号量柱状图
    Integer lateComare(@Param("date")String date,@Param("start") String start,@Param("end")String end);
    Integer lateComareHistory(@Param("startDate")String startDate,@Param("endDate")String endDate,@Param("start") String start,@Param("end")String end);

    //6、近30天事项申办量top8
    List<TopEightTask> topEightTask(Date date);

    //8、近1天数据统计
    /**
     * 获取平均受理时间
     * @return
     */
    Double getAccessTime(@Param("start") Date start,@Param("end")Date end);
    /**
     * 获取平均等待时间
     * @return
     */
    Double getWaitTime(@Param("start") Date start,@Param("end")Date end);

    //9、近七天各渠道数据
    Integer getTickXianChangTotal(@Param("start") String start, @Param("end")String end);
    Integer getTickELongnanTotal(@Param("start") String start, @Param("end")String end);
    Integer getTickGanFuTongTotal(@Param("start") String start, @Param("end")String end);

    //10、各业务区等待与受理时间
    List<WaitAndGetTimeForArea> getWaitTimeForArea(@Param("start") Date start, @Param("end")Date end);
    //List<WaitAndGetTimeForArea> getAccessTimeForArea(@Param("start") Date start, @Param("end")Date end);





}
